package com.dyzx.hbb.modules.wms.query;


import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 入库单明细查询条件
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(description = "入库单明细查询条件")
public class WmsStockInDetailsQuery {


    /**
     * 状态 字典信息：sys_global_status   'Draft', 'Pending', 'Completed', 'Cancelled'
     */
    @Schema(description = "状态 字典信息：sys_global_status   'Draft', 'Pending', 'Completed', 'Cancelled'")
    @JsonProperty ("status")
    private Integer status;



    /**
     * 入库单号 (如：IN20240530001)
     */
    @Schema(description = "入库单号 (如：IN20240530001)")
     @JsonProperty ("order_id")
    @NotNull(message = "入库单号不能为空")
    private Long orderId;

    /**
     * 数量
     */
    @Schema(description = "数量")
    @JsonProperty ("quantity")
    @NotNull(message = "数量不能为空")
    private Integer quantity;

    /**
     * 货位
     */
     @Schema(description = "货位")
     @JsonProperty ("location_id")
      @NotNull(message = "货位不能为空")
    private Long locationId;

    /**
     * 货位
     */
     @Schema(description = "货位")
     @JsonProperty ("location_area_id")
      @NotNull(message = "货位不能为空")
    private Long locationAreaId;

    /**
     * 仓库表（管理物理仓库信息）
     */
     @Schema(description = "仓库表（管理物理仓库信息）")
      @JsonProperty ("house_id")
      @NotNull(message = "仓库不能为空")
    private Long houseId;

    /**
     * 商品
     */
     @Schema(description = "商品")
      @JsonProperty ("product_id")
      @NotNull(message = "商品不能为空")
    private Long productId;

    /**
     * 金额
     */
     @Schema(description = "金额")
      @JsonProperty ("uni_price")
      @NotNull(message = "金额不能为空")
    private Long uniPrice;

    /**
     * 实际入库数量（允许部分入库）
     */
     @Schema(description = "实际入库数量（允许部分入库）")
      @JsonProperty ("received_quantity")
      @NotNull(message = "实际入库数量不能为空")
    private Integer receivedQuantity;

    /**
     * 库存入口编号
     */
     @Schema(description = "库存入口编号")
       @JsonProperty ("inventory_id")
      @NotNull(message = "库存入口编号不能为空")
    private Long inventoryId;
}